package com.valuegroup.smarttodo.data;

import com.valuegroup.smarttodo.data.model.Summarize;
import com.valuegroup.smarttodo.data.service.CurriculumService;
import com.valuegroup.smarttodo.data.service.DataInitService;
import com.valuegroup.smarttodo.data.service.EventService;
import com.valuegroup.smarttodo.data.service.FilterService;
import com.valuegroup.smarttodo.data.service.GoalsService;
import com.valuegroup.smarttodo.data.service.HabitService;
import com.valuegroup.smarttodo.data.service.IdealityService;
import com.valuegroup.smarttodo.data.service.RemarkService;
import com.valuegroup.smarttodo.data.service.RethinkService;
import com.valuegroup.smarttodo.data.service.SumContentService;
import com.valuegroup.smarttodo.data.service.SumTopicService;
import com.valuegroup.smarttodo.data.service.SummarizeService;
import com.valuegroup.smarttodo.data.service.TagService;
import com.valuegroup.smarttodo.data.service.TaskService;

public class ServiceFactory {

    private static ServiceFactory mInstance = null;
    private CurriculumService curriculumService;
    private EventService eventService;
    private GoalsService goalsService;
    private HabitService habitService;
    private IdealityService idealityService;
    private RemarkService remarkService;
    private TagService tagService;
    private TaskService taskService;
    private DataInitService dataInitService;
    private FilterService filterService;
    private RethinkService rethinkService;
    private SumContentService sumContentService;
    private SumTopicService sumTopicService;
    private SummarizeService summarizeService;

    /**
     * 获取DaoFactory的实例
     *
     * @return
     */
    public static ServiceFactory getInstance() {
        if (mInstance == null) {
            synchronized (ServiceFactory.class) {
                if (mInstance == null) {
                    mInstance = new ServiceFactory();
                }
            }
        }
        return mInstance;
    }

    private ServiceFactory() {
        this.curriculumService = new CurriculumService();
        this.eventService = new EventService();
        this.goalsService = new GoalsService();
        this.habitService = new HabitService();
        this.idealityService = new IdealityService();
        this.remarkService = new RemarkService();
        this.tagService = new TagService();
        this.taskService = new TaskService();
        this.dataInitService = new DataInitService();
        this.filterService = new FilterService();
        this.rethinkService = new RethinkService();
        this.sumContentService = new SumContentService();
        this.sumTopicService = new SumTopicService();
        this.summarizeService = new SummarizeService();
    }

    public CurriculumService getCurriculumService() {
        return curriculumService;
    }

    public EventService getEventService() {
        return eventService;
    }

    public GoalsService getGoalsService() {
        return goalsService;
    }

    public HabitService getHabitService() {
        return habitService;
    }

    public IdealityService getIdealityService() {
        return idealityService;
    }

    public RemarkService getRemarkService() {
        return remarkService;
    }

    public TagService getTagService() {
        return tagService;
    }

    public TaskService getTaskService() {
        return taskService;
    }

    public DataInitService getDataInitService() {
        return dataInitService;
    }

    public FilterService getFilterService() {
        return filterService;
    }

    public RethinkService getRethinkService() {
        return rethinkService;
    }

    public SumContentService getSumContentService() {
        return sumContentService;
    }

    public SumTopicService getSumTopicService() {
        return sumTopicService;
    }

    public SummarizeService getSummarizeService() {
        return summarizeService;
    }
}
